/* 使用Koa，从0开始打造一个极简风格的Web服务器 要求：
    使用Koa；
    使用8000端口；
    输出服务运行地址信息；
    更新端口号，能自动更新服务运行地址；
*/
import Koa from "koa"; //引入koa
let app = new Koa(); //实例化koa对象
let port = 8000; //定义端口号
app.listen(port); //监听端口号
console.log(`服务运行地址:http://localhost:${port}`);

// 在开发时，改完代码总要结束程序，再启动程序有点麻烦，请使用nodemon来进行热重载
// 要求：
//     nodemon 全局安装
// 第一步:下载   npm i -g nodemon
// 第二步:使用  打开package.json, 设置  "dev":"nodemon index.js" 即可

/* 使用koa-router，给我们第一步做的web服务应用集成路由功能
 要求：
     使用 http://localhost:8000/  返回“首页”字样
     使用 http://localhost:8000/weixin  返回“微信”字样
     使用 http://localhost:8000/alipay  返回“支付宝”字样
     使用 http://localhost:8000/ds  返回“yyds”字样
*/
import Router from "koa-router"; //引入路由
let router = new Router(); //实例化路由
//定义路由
router.get("/", async (ctx) => {
  ctx.response.body = "首页";
});
router.get("/weixin", async (ctx) => {
  ctx.response.body = "微信";
});
router.get("/alipay", async (ctx) => {
  ctx.response.body = "支付宝";
});
router.get("/ds", async (ctx, next) => {
  ctx.response.body = "yyds";
});

// 在第3题的基础上，如果有一个请求地址如：http://localhost:8000/app?code=5566，请问如何拿到code后面值？请编码实现
// 要求：
/*     连同code一起获取，演示用代码如何实现；
router.get('/app/:code',async (ctx)=>{
    console.log(ctx.params.code);
})
*/

/*   只要获取code的值，演示用代码如何实现;*/
router.get("/app/:code", async (ctx) => {
  console.log(ctx.params.code.split("=")[1]);
});

// 在之前项目基础上，如果有post请求，要如何拿到请求过来的数据？请编码实现
import bodyParser from "koa-bodyparser"; //引入bodyParser

router.post("/aaaa", async (ctx) => {
  console.log(ctx.request.body);
});

app.use(bodyParser()); //这行代码一定要放在 app.use(router.routes()) 之前,不然就是undefined
app.use(router.routes()); //将路由中间件挂载在koa服务上

app.use(router.allowedMethods());
